Interfacing with Proof Assistants for Domain Specific Programming Using EventML
نویسنده
چکیده
This paper presents a paradigm for using proof assistants in the programming process. We demonstrate how the programming language EventML provides a useful interface to proof assistants throughout code development. Enhancing the use of proof assistants in programming will make them more valuable and accessible to a large community. We designed EventML specifically to cooperate with proof assistants at every stage of program creation. It will help programmers ensure correctness, document the code, and support modifications and improvements. Cooperation is especially effective when the proof assistant and the programming language share the same type system and when the proof assistant can generate executable code for the programming language, as is natural for proof assistants using constructive type theories.
منابع مشابه
Dependently Typed Programming with Domain-Specific Logics
This dissertation describes progress on programming with domain-specific specification logics in dependently typed programming languages. Domain-specific logics are a promising way to verify software, using a logic tailored to a style of programming or an application domain. Examples of domain-specific logics include separation logic, which has been used to verify imperative programs, and autho...
متن کاملPosition Paper: Thoughts on Programming with Proof Assistants
Today the reigning opinion about computer proof assistants based on constructive logic (even from some of the developers of these tools!) is that, while they are very helpful for doing math, they are an absurdly heavy-weight solution to use for practical programming. Yet the Curry-Howard isomorphism foundation of proof assistants like Coq [BC04] gives them clear interpretations as programming e...
متن کاملCombining Verification and MDE Illustrated by a Formal Java Development
Formal methods are increasingly used in software engineering. They offer a formal frame that guarentees the correctness of developments. However, they use complex notations that might be difficult to understand for unaccustomed users. It thus becomes interesting to formally specify the core components of a language, implement a provably correct development, and manipulate its components in a gr...
متن کاملHoc Software Interfacing : Domain - Specific Language ( DSL ) Toolkits Meet Enterprise Application Integration ( EAI ) Servers Arthur
Ad hoc software interfacing occurs when one must programmatically move data from software system A to software system B where A and B were never intended to interoperate. Ad hoc software interfacing is a common way to construct new, larger software systems from other software systems, by using them as large-grained components. Ad hoc software interfacing, also known as glue coding, low level...
متن کاملCompilation Using Correct-by-Construction Program Synthesis
Extracting and compiling certified programs may introduce bugs in otherwise proven-correct code, reducing the extent of the guarantees that proof assistants and correct-byconstruction program-derivation frameworks provide. We present a novel approach to the extraction and compilation of embedded domain-specific languages developed in a proof assistant (Coq), showing how it allows us to extend c...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2012